const fs = require("fs-extra");
const path = require("path");

const { shouldCover } = require("../inquirer/shouldCover");

/**
 * 检查要创建的应用是否已存在
 * 存在时，提问是否要覆盖
 * 覆盖则先删除已有目录
 * @param {*} appName
 * @returns
 */
const isAppExsit = async (appName = "") => {
  if (!appName) {
    Promise.reject("应用名称不能为空");
  }

  /**
   * process.cwd() 为命令行执行目录
   * appUrl 应用地址
   * isExsit 当前应用是否存在
   */
  const appUrl = path.join(process.cwd(), appName);
  const isExsit = await fs.pathExists(appUrl);

  // 应用存在时判断是否要覆盖
  if (isExsit) {
    const isCover = await shouldCover();
    if (isCover) {
      await fs.remove(appUrl);
      Promise.resolve();
    } else {
      Promise.reject("取消操作");
    }
  } else {
    // 执行后续操作
    Promise.resolve();
  }
};

module.exports = isAppExsit;
